package com.whatech.mall.order.feignclient;

import com.whatech.mall.order.model.dto.productservice.ProductDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 调用商品服务的FeignClient。
 */
/*
    @FeignClient 的 fallback 和 fallbackFactory 都是用来做降级处理的，只能二选一。
    fallbackFactory 的功能强大一些，可以拿到异常信息等。
 */
@FeignClient(name = "product-service", fallbackFactory = ProductServiceFeignClientFallbackFactory.class)
public interface ProductServiceFeignClient {

    @GetMapping("/product/query/{id}")
    ProductDTO findProductById(@PathVariable("id") Long id);

}
